<?php
	/**
	 * ParameterException is thrown, when the wrong amount or types of parameters were passed to a method or function.
	 * @author IMP
	 */
	
	class ParameterException extends InvalidArgumentException {
		public function __construct($parameterID, array $possibleTypes, $parameter){
			$this->message = 'Parameter ' . $parameterID . ' should be one of ' . implode(', ', $possibleTypes) . ' instead of ' . (is_object($parameter) ? get_class($parameter) : gettype($parameter)) . '.';
		}
	}
?>